/**
 * - 作者: DoooReyn
 * - 日期: 2023.10.30
 */

import { ConstructorOf } from '../../../../wing/assets/src';
import type { BaseStage } from '../view';
import type { Language } from './Language';

/** 基础环境配置<只读> */
export interface Environment {
    /** 游戏名称 */
    readonly appName: string;
    /** 游戏版本号-大、中、小 */
    readonly appVersion: [number, number, number];
    /** 默认帧率所属分级 */
    readonly fps: 0 | 1 | 2;
    /** 帧率分级-高、中、低 */
    readonly fpsApsect: [number, number, number];
    /** 是否开发版本 */
    readonly isDevVersion: boolean;
    /** 是否显示开发信息 */
    readonly isShowDevInfo: boolean;
    /** 是否允许输出日志 */
    readonly isLogEnabled: boolean;
    /** 游戏支持的语言，默认取第一个 */
    readonly languages: Language[];
    /** 服务器配置 */
    readonly server?: {
        /** 网关 */
        gate?: { host: string; port: string };
        /** API */
        api?: { host: string; port: string };
        /** WebSocket */
        websocket?: { host: string; port: string; protocol: 'ws' | 'wss' };
    };
    /** 用户习惯本地配置 */
    readonly preferences: {
        /** 音乐开关 */
        bgmOn: boolean;
        /** 音效开关 */
        effectOn: boolean;
        /** 音乐音量 */
        bgmVolume: number;
        /** 音效音量 */
        effectVolume: number;
    };
    /** 舞台 */
    readonly stage: ConstructorOf<BaseStage>;
}
